﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:System="clr-namespace:System;assembly=mscorlib">

    <System:Double x:Key="HorizontalThumbHeight">16</System:Double>
    <System:Double x:Key="HorizontalThumbWidth">10</System:Double>
    <System:Double x:Key="VerticalThumbWidth">16</System:Double>
    <System:Double x:Key="VerticalThumbHeight">10</System:Double>

    <!--HorizontalSliderThumb-->
    <Style x:Key="HorizontalSliderThumb"
           TargetType="Thumb">
        <Setter Property="Background"
                Value="{DynamicResource GrayBrush10}" />
        <Setter Property="BorderThickness"
                Value="1,0,1,0" />
        <Setter Property="IsTabStop"
                Value="False" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Thumb">
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="MouseOver">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity"
                                                                       Storyboard.TargetName="DisabledVisualElement">
                                            <SplineDoubleKeyFrame KeyTime="0"
                                                                  Value=".55" />
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Pressed">
                                    <Storyboard />
                                </VisualState>
                                <VisualState x:Name="Disabled">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity"
                                                                       Storyboard.TargetName="DisabledVisualElement">
                                            <SplineDoubleKeyFrame KeyTime="0"
                                                                  Value=".55" />
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                            <VisualStateGroup x:Name="FocusStates">
                                <VisualState x:Name="Focused" />
                                <VisualState x:Name="Unfocused" />
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Border Background="{DynamicResource BlackBrush}"
                                BorderThickness="{TemplateBinding BorderThickness}"
                                CornerRadius="2.5"
                                Opacity=".55"
                                BorderBrush="{DynamicResource ControlBackgroundBrush}" />
                        <Rectangle x:Name="DisabledVisualElement"
                                   Fill="{DynamicResource DisabledWhiteBrush}"
                                   IsHitTestVisible="false"
                                   Opacity=".2" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <!--HorizontalTrackLargeDecrease-->
    <Style x:Key="HorizontalTrackLargeDecrease"
           TargetType="{x:Type RepeatButton}">
        <Setter Property="OverridesDefaultStyle"
                Value="true" />
        <Setter Property="IsTabStop"
                Value="false" />
        <Setter Property="Focusable"
                Value="false" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RepeatButton}">
                    <Grid x:Name="Root"
                          Margin="0,-1,0,0">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="MouseOver" />
                                <VisualState x:Name="Pressed" />
                                <VisualState x:Name="Disabled" />
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Rectangle Height="3"
                                   Margin="0,1,0,0"
                                   Fill="{DynamicResource GrayBrush3}" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style x:Key="HorizontalTrackValue"
           TargetType="{x:Type RepeatButton}">
        <Setter Property="OverridesDefaultStyle"
                Value="true" />
        <Setter Property="IsTabStop"
                Value="false" />
        <Setter Property="Focusable"
                Value="false" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RepeatButton}">
                    <Grid x:Name="Root"
                          Margin="0,-1,0,0">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="MouseOver" />
                                <VisualState x:Name="Pressed" />
                                <VisualState x:Name="Disabled" />
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Rectangle Height="5"
                                   Margin="0,1,0,0">
                            <Rectangle.Fill>
                                <LinearGradientBrush StartPoint="0.5,0"
                                                     EndPoint="0.5,1">
                                    <GradientStop Color="{TemplateBinding Background}"
                                                  Offset="0.0" />
                                    <GradientStop Color="{DynamicResource AccentColor}"
                                                  Offset="0.25" />
                                    <GradientStop Color="{DynamicResource AccentColor}"
                                                  Offset="0.75" />
                                    <GradientStop Color="{TemplateBinding Background}"
                                                  Offset="1.0" />
                                </LinearGradientBrush>
                            </Rectangle.Fill>
                        </Rectangle>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <ControlTemplate x:Key="HorizontalSliderTemplate"
                     TargetType="Slider">
        <Grid x:Name="Root">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal" />
                    <VisualState x:Name="MouseOver" />
                    <VisualState x:Name="Disabled" />
                </VisualStateGroup>
                <VisualStateGroup x:Name="FocusStates">
                    <VisualState x:Name="Unfocused" />
                    <VisualState x:Name="Focused" />
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
            <Grid x:Name="HorizontalTemplate"
                  Background="{TemplateBinding Background}">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto"
                                   MinHeight="{TemplateBinding Slider.MinHeight}" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <TickBar x:Name="TopTick"
                         Visibility="Collapsed"
                         Fill="{TemplateBinding Foreground}"
                         Placement="Top"
                         Height="4"
                         Grid.Row="0" />
                <TickBar x:Name="BottomTick"
                         Visibility="Collapsed"
                         Fill="{TemplateBinding Foreground}"
                         Placement="Bottom"
                         Height="4"
                         Grid.Row="2" />
                <Track x:Name="PART_Track"
                       Grid.Row="1"
                       Height="18">
                    <Track.DecreaseRepeatButton>
                        <RepeatButton Command="{x:Static Slider.DecreaseLarge}"
                                      Style="{StaticResource HorizontalTrackValue}" />
                    </Track.DecreaseRepeatButton>
                    <Track.IncreaseRepeatButton>
                        <RepeatButton Command="{x:Static Slider.IncreaseLarge}"
                                      Style="{StaticResource HorizontalTrackLargeDecrease}" />
                    </Track.IncreaseRepeatButton>
                    <Track.Thumb>
                        <Thumb x:Name="HorizontalThumb"
                               Height="{DynamicResource HorizontalThumbHeight}"
                               IsTabStop="True"
                               Width="{DynamicResource HorizontalThumbWidth}"
                               Style="{StaticResource HorizontalSliderThumb}" />
                    </Track.Thumb>
                </Track>
            </Grid>
        </Grid>
        <ControlTemplate.Triggers>
            <Trigger Property="TickPlacement"
                     Value="TopLeft">
                <Setter TargetName="TopTick"
                        Property="Visibility"
                        Value="Visible" />
            </Trigger>
            <Trigger Property="TickPlacement"
                     Value="BottomRight">
                <Setter TargetName="BottomTick"
                        Property="Visibility"
                        Value="Visible" />
            </Trigger>
            <Trigger Property="TickPlacement"
                     Value="Both">
                <Setter TargetName="TopTick"
                        Property="Visibility"
                        Value="Visible" />
                <Setter TargetName="BottomTick"
                        Property="Visibility"
                        Value="Visible" />
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

    <!--VerticalSliderThumb-->
    <Style x:Key="VerticalSliderThumb"
           TargetType="Thumb">
        <Setter Property="Background"
                Value="{DynamicResource GrayBrush10}" />
        <Setter Property="BorderThickness"
                Value="0,1,0,1" />
        <Setter Property="IsTabStop"
                Value="False" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Thumb">
                    <Grid>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="MouseOver">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity"
                                                                       Storyboard.TargetName="DisabledVisualElement">
                                            <SplineDoubleKeyFrame KeyTime="0"
                                                                  Value=".55" />
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Pressed">
                                    <Storyboard />
                                </VisualState>
                                <VisualState x:Name="Disabled">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity"
                                                                       Storyboard.TargetName="DisabledVisualElement">
                                            <SplineDoubleKeyFrame KeyTime="0"
                                                                  Value=".55" />
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                            <VisualStateGroup x:Name="FocusStates">
                                <VisualState x:Name="Focused" />
                                <VisualState x:Name="Unfocused" />
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Border Background="{DynamicResource BlackBrush}"
                                BorderThickness="{TemplateBinding BorderThickness}"
                                CornerRadius="2.5"
                                Opacity=".55"
                                BorderBrush="{DynamicResource ControlBackgroundBrush}" />
                        <Rectangle x:Name="DisabledVisualElement"
                                   Fill="{DynamicResource DisabledWhiteBrush}"
                                   IsHitTestVisible="false"
                                   Opacity=".2" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style x:Key="VerticalTrackLargeDecrease"
           TargetType="{x:Type RepeatButton}">
        <Setter Property="OverridesDefaultStyle"
                Value="true" />
        <Setter Property="IsTabStop"
                Value="false" />
        <Setter Property="Focusable"
                Value="false" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RepeatButton}">
                    <Grid x:Name="Root"
                          Margin="-1,0,0,0">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="MouseOver" />
                                <VisualState x:Name="Pressed" />
                                <VisualState x:Name="Disabled" />
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Rectangle Width="3"
                                   Margin="1,0,0,0"
                                   Fill="{DynamicResource GrayBrush3}" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>

    </Style>
    <Style x:Key="VerticalTrackValue"
           TargetType="{x:Type RepeatButton}">
        <Setter Property="OverridesDefaultStyle"
                Value="true" />
        <Setter Property="IsTabStop"
                Value="false" />
        <Setter Property="Focusable"
                Value="false" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RepeatButton}">
                    <Grid x:Name="Root"
                          Margin="-1,0,0,0">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal" />
                                <VisualState x:Name="MouseOver" />
                                <VisualState x:Name="Pressed" />
                                <VisualState x:Name="Disabled" />
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Rectangle Width="5"
                                   Margin="1,0,0,0">
                            <Rectangle.Fill>
                                <LinearGradientBrush StartPoint="0,0.5"
                                                     EndPoint="1,0.5">
                                    <GradientStop Color="{TemplateBinding Background}"
                                                  Offset="0.0" />
                                    <GradientStop Color="{DynamicResource AccentColor}"
                                                  Offset="0.25" />
                                    <GradientStop Color="{DynamicResource AccentColor}"
                                                  Offset="0.75" />
                                    <GradientStop Color="{TemplateBinding Background}"
                                                  Offset="1.0" />
                                </LinearGradientBrush>
                            </Rectangle.Fill>
                        </Rectangle>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <ControlTemplate x:Key="VerticalSliderTemplate"
                     TargetType="Slider">
        <Grid x:Name="Root">
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    <VisualState x:Name="Normal" />
                    <VisualState x:Name="MouseOver" />
                    <VisualState x:Name="Disabled" />
                </VisualStateGroup>
                <VisualStateGroup x:Name="FocusStates">
                    <VisualState x:Name="Unfocused" />
                    <VisualState x:Name="Focused" />
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
            <Grid x:Name="HorizontalTemplate"
                  Background="{TemplateBinding Background}">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto"
                                      MinWidth="{TemplateBinding Slider.MinWidth}" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <TickBar x:Name="TopTick"
                         Visibility="Collapsed"
                         Fill="{TemplateBinding Foreground}"
                         Placement="Left"
                         Width="4"
                         Grid.Column="0" />
                <TickBar x:Name="BottomTick"
                         Visibility="Collapsed"
                         Fill="{TemplateBinding Foreground}"
                         Placement="Right"
                         Width="4"
                         Grid.Column="2" />
                <Track x:Name="PART_Track"
                       Grid.Column="1"
                       Width="18">
                    <Track.DecreaseRepeatButton>
                        <RepeatButton Command="{x:Static Slider.DecreaseLarge}"
                                      Style="{StaticResource VerticalTrackValue}" />
                    </Track.DecreaseRepeatButton>
                    <Track.IncreaseRepeatButton>
                        <RepeatButton Command="{x:Static Slider.IncreaseLarge}"
                                      Style="{StaticResource VerticalTrackLargeDecrease}" />
                    </Track.IncreaseRepeatButton>
                    <Track.Thumb>
                        <Thumb x:Name="VerticalThumb"
                               Width="{DynamicResource VerticalThumbWidth}"
                               IsTabStop="True"
                               Height="{DynamicResource VerticalThumbHeight}"
                               Style="{StaticResource VerticalSliderThumb}" />
                    </Track.Thumb>
                </Track>
            </Grid>
        </Grid>
        <ControlTemplate.Triggers>
            <Trigger Property="TickPlacement"
                     Value="TopLeft">
                <Setter TargetName="TopTick"
                        Property="Visibility"
                        Value="Visible" />
            </Trigger>
            <Trigger Property="TickPlacement"
                     Value="BottomRight">
                <Setter TargetName="BottomTick"
                        Property="Visibility"
                        Value="Visible" />
            </Trigger>
            <Trigger Property="TickPlacement"
                     Value="Both">
                <Setter TargetName="TopTick"
                        Property="Visibility"
                        Value="Visible" />
                <Setter TargetName="BottomTick"
                        Property="Visibility"
                        Value="Visible" />
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

    <!--Slider Style-->
    <Style TargetType="Slider"
           x:Key="MetroSlider">
        <Setter Property="BorderThickness"
                Value="1" />
        <Setter Property="Maximum"
                Value="100" />
        <Setter Property="Minimum"
                Value="0" />
        <Setter Property="Value"
                Value="0" />
        <Setter Property="BorderBrush"
                Value="{DynamicResource ControlBorderBrush}" />
        <Setter Property="IsTabStop"
                Value="False" />
        <Setter Property="Template"
                Value="{DynamicResource HorizontalSliderTemplate}" />
        <Setter Property="Foreground"
                Value="{DynamicResource TextBrush}" />
        <Style.Triggers>
            <Trigger Property="Orientation"
                     Value="Vertical">
                <Setter Property="Template"
                        Value="{DynamicResource VerticalSliderTemplate}" />
            </Trigger>
        </Style.Triggers>
    </Style>

</ResourceDictionary>